草庐IT

c++ - C++中auto_ptr的指针运算

全部标签

c# - 在条件运算中使用 true 和 false 作为表达式

我正在维护一些代码并且经常发现以下模式:varisMale=(row["Gender"].ToString()=="M")?true:false;而不是这个:varisMale=(row["Gender"].ToString()=="M");有什么理由为什么有人会这样做吗?有人认为前者更具可读性或更清晰吗?是否有某种旧的C语言“陷阱”是它的延期? 最佳答案 合理的理由?没有。它通常是由并不真正理解条件本身也是一个表达式的人产生的,它会产生一个bool结果。特别是,人们接受的语言不是这种情况,例如BASIC的许多变体。

c# - 为什么空合并运算符 (??) 在这种情况下不起作用?

当我运行此代码时,我遇到了意外的NullReferenceException,省略了fileSystemHelper参数(因此将其默认为null):publicclassGitLog{FileSystemHelperfileSystem;//////Initializesanewinstanceoftheclass.//////ThepathtoaGitworkingcopy.///Ahelperclassthatprovidesfilesystemservices(optional).///Thrownifthepathisinvalid.///ThrownifthereisnoGi

C# 静态类和 is 运算符

最近重构了一些代码,其中涉及一些类重命名,我的一些代码以令人惊讶的方式崩溃了。原因是“is”运算符测试失败,我很惊讶这不是编译器错误或警告。这个完整的程序展示了这种情况:staticclassExtensionMethods{}classProgram{staticvoidMain(){Test("Test");}publicstaticboolTest(objectobj){returnobjisExtensionMethods;}}鉴于ExtensionMethods是一个静态类,我原以为“objisExtensionMethods”会引发某种警告。当被测对象永远不可能是提供的类型

c# - 如何在 C# 中显示指针地址?

自从我用C#编程以来,我没有做过任何指导——我的C++时代已经过去很久了。我想我应该刷新我的知识并且只是因为这里的另一个问题而和他们一起玩。我完全理解它们,但我不知道如何将指针的地址写入控制台...charc='c';chard='d';chare='e';unsafe{char*cp=&d;//HowdoIwritethepointeraddresstotheconsole?*cp='f';cp=&e;//HowdoIwritethepointeraddresstotheconsole?*cp='g';cp=&c;//HowdoIwritethepointeraddresstothe

c# - 如何让 Null Coalesce 运算符在 ASP.NET MVC Razor 中工作?

我有以下内容,但它因NullReferenceException而失败:@item.FundPerformance.Where(xx=>fund.Id==xx.Id).FirstOrDefault().OneMonth??-OneMonth定义为publicvirtualdecimal?OneMonth{get;set;}失败时它的值为空。我认为NullCoalesce运算符会测试它是否为null,如果是,则返回运算符右侧的值?我需要更改什么才能使其正常工作? 最佳答案 如您所写,razor语法以“OneMonth”结尾。这??被解

c# - 枚举和减法运算符

有谁知道(也许:从什么时候开始)-=运算符在enum值上受支持?今天我正在愉快地编码,因为某种原因,我写了这个来从标志enum中排除一个值:flags-=FlagsEnum.Value1;在重新阅读和评估我的代码后,我很惊讶它编译后确实有效。将语句写成flags=flags-FlagsEnum.Value1但是不编译。到目前为止,我在文档和互联网上找不到任何内容。此外,不支持其他运算符(当然除了位运算符):+=(包括标志)、*=(Pascal中的交集)工作。这是C#编译器内置的语法糖吗?如果是这样,他们选择不包括其他运营商的原因是什么?一个简单的代码示例:usingSystem;usi

c# - 使用三元运算符进行多项操作

如何使用三元?:执行多个操作的条件,如果表达式为真/假?wbsource=(exp)?(做一件事):(做第二件事)wbsource=(exp)?(做一件事)(做第二件事):(做第二件事)例如:为什么我不能在之间执行三个操作?和:filename=(fp!=null)?fp;Properties.Settings.Default.filename=fp;Properties.Settings.Default.Save;:Properties.Settings.Default.file;对于简单的if条件,我会以如下简单的方式编写:if(fp!null){filename=fp;Prope

c# Panel with auto scroll - 在控件焦点上重置滚动条位置

这是一个Windows窗体。面板有AutoScroll=True我正在向主面板动态添加面板,最终超出了主面板显示矩形。然后将标签、组合框和文本框添加到添加的面板。如果我选择一个组合框或文本框,它会将主面板滚动条位置重置为0,并且组合框的下拉菜单将放置在屏幕X、Y上,如果没有滚动条,它应该位于该位置重置。我正在考虑在选择控件时保存滚动位置。经过测试,滚动位置似乎尚未重置,因此我可以在此处捕获它。然后我希望在面板的某个事件上恢复滚动位置。我正在尝试找出我将使用什么事件来恢复滚动位置。我也希望下拉菜单在我执行此操作时将放置在正确的x,y处。更好的解决方案是创建一个基于面板控件的自定义控件并可

c# - 数据类型 text 和 varchar 在 C# 中的等于运算符中不兼容

我正在尝试从employeeTable访问数据empname,但我编写的代码出现以下错误:Thedatatypestextandvarcharareincompatibleintheequaltooperator.请提出解决方案privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){stringConnection="DataSource=(local);Initialcatalog=Test;IntegratedSecurity=true";stringQuery="SELECT*FROMEmployeeT

c# - 为什么 "as"运算符在 C# 中不使用隐式转换运算符?

我在C#中定义了从/到某种类型的隐式字符串转换(伪代码):publicclassMyType{publicstringValue{get;set;}publicstaticimplicitoperatorMyType(stringfromString){returnnewMyType{Value=fromString};}publicstaticimplicitoperatorstring(MyTypemyType){returnmyType.Value;}}在外部库代码的某处,MyType的实例作为对象参数传递给方法。该方法的一部分看起来像这样:privatevoidFoo(obje